<?php

namespace aerovuelos\UsuarioBundle\Entity;

use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints as DoctrineAssert;

/**
 * Usuarios
 *
 * @ORM\Table(name="usuarios")
 * @ORM\Entity

 */
class Usuarios implements UserInterface {

    /**
     * Método requerido por la interfaz UserInterface
     */
    public function eraseCredentials() {
        
    }

    /**
     * Método requerido por la interfaz UserInterface
     */
    public function getRoles() {

        return array('ROLE_' . $this->tipoUsuarios->getNombre());
    }

    /**
     * Método requerido por la interfaz UserInterface
     */
    public function getUsername() {
        return $this->getUsuario();
    }

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="usuario", type="string", length=255, nullable=true)
     */
    private $usuario;

    /**
     * @var string
     *
     * @ORM\Column(name="password", type="string", length=255, nullable=true)
     
     */
    private $password;

    /**
     * @var string
     *
     * @ORM\Column(name="salt", type="string", length=255, nullable=true)
     */
    private $salt;

    /**
     * @var \Personas
     *
     * @ORM\ManyToOne(targetEntity="aerovuelos\PersonaBundle\Entity\Personas", cascade={"persist"})
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="personas_id", referencedColumnName="id")
     * })
     */
    private $personas;

    /**
     * @var \TipoUsuarios
     *
     * @ORM\ManyToOne(targetEntity="TipoUsuarios")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="tipo_usuarios_id", referencedColumnName="id")
     * })
     */
    private $tipoUsuarios;

    public function __toString() {
        return $this->getUsuario();
    }

    public function __sleep() {
        return array('id');
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId() {
        return $this->id;
    }

    /**
     * Set usuario
     *
     * @param string $usuario
     * @return Usuarios
     */
    public function setUsuario($usuario) {
        $this->usuario = $usuario;

        return $this;
    }

    /**
     * Get usuario
     *
     * @return string 
     */
    public function getUsuario() {
        return $this->usuario;
    }

    /**
     * Set password
     *
     * @param string $password
     * @return Usuarios
     */
    public function setPassword($password) {
        $this->password = $password;

        return $this;
    }

    /**
     * Get password
     *
     * @return string 
     */
    public function getPassword() {
        return $this->password;
    }

    /**
     * Set salt
     *
     * @param string $salt
     * @return Usuarios
     */
    public function setSalt($salt) {
        $this->salt = $salt;

        return $this;
    }

    /**
     * Get salt
     *
     * @return string 
     */
    public function getSalt() {
        return $this->salt;
    }

    /**
     * Set personas
     *
     * @param \aerovuelos\PersonaBundle\Entity\Personas $personas
     * @return Usuarios
     */
    public function setPersonas(\aerovuelos\PersonaBundle\Entity\Personas $personas = null) {
        $this->personas = $personas;

        return $this;
    }

    /**
     * Get personas
     *
     * @return \aerovuelos\PersonaBundle\Entity\Personas 
     */
    public function getPersonas() {
        return $this->personas;
    }

    /**
     * Set tipoUsuarios
     *
     * @param \aerovuelos\UsuarioBundle\Entity\TipoUsuarios $tipoUsuarios
     * @return Usuarios
     */
    public function setTipoUsuarios(\aerovuelos\UsuarioBundle\Entity\TipoUsuarios $tipoUsuarios = null) {
        $this->tipoUsuarios = $tipoUsuarios;

        return $this;
    }

    /**
     * Get tipoUsuarios
     *
     * @return \aerovuelos\UsuarioBundle\Entity\TipoUsuarios 
     */
    public function getTipoUsuarios() {
        return $this->tipoUsuarios;
    }

}